package com.yc.cloud.admin.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;

/**
 * SIP信令系统设备信息视图对象
 *
 * @author kinggu
 * @since 2025-09-09
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "SipDeviceVo", description = "SIP信令系统设备信息视图对象")
public class SipDeviceVo {

    @ApiModelProperty(value = "设备ID")
    private Long id;

    @ApiModelProperty(value = "设备编号")
    private String deviceId;

    @ApiModelProperty(value = "设备名称")
    private String name;

    @ApiModelProperty(value = "制造商")
    private String manufacturer;

    @ApiModelProperty(value = "设备型号")
    private String model;

    @ApiModelProperty(value = "固件版本")
    private String firmware;

    @ApiModelProperty(value = "传输协议")
    private String transport;

    @ApiModelProperty(value = "流模式")
    private String streamMode;

    @ApiModelProperty(value = "设备IP地址")
    private String ip;

    @ApiModelProperty(value = "端口号")
    private Integer port;

    @ApiModelProperty(value = "主机地址")
    private String hostAddress;

    @ApiModelProperty(value = "在线状态")
    private Boolean onLine;

    @ApiModelProperty(value = "注册时间")
    private LocalDateTime registerTime;

    @ApiModelProperty(value = "保活时间")
    private LocalDateTime keepaliveTime;

    @ApiModelProperty(value = "心跳间隔")
    private Integer heartBeatInterval;

    @ApiModelProperty(value = "心跳次数")
    private Integer heartBeatCount;

    @ApiModelProperty(value = "位置能力")
    private Integer positionCapability;

    @ApiModelProperty(value = "通道数量")
    private Integer channelCount;

    @ApiModelProperty(value = "过期时间")
    private Integer expires;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "媒体服务器ID")
    private String mediaServerId;

    @ApiModelProperty(value = "字符集")
    private String charset;

    @ApiModelProperty(value = "目录订阅周期")
    private Integer subscribeCycleForCatalog;

    @ApiModelProperty(value = "位置订阅周期")
    private Integer subscribeCycleForMobilePosition;

    @ApiModelProperty(value = "位置提交间隔")
    private Integer mobilePositionSubmissionInterval;

    @ApiModelProperty(value = "报警订阅周期")
    private Integer subscribeCycleForAlarm;

    @ApiModelProperty(value = "SSRC检查")
    private Boolean ssrcCheck;

    @ApiModelProperty(value = "地理坐标系")
    private String geoCoordSys;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "SDP IP")
    private String sdpIp;

    @ApiModelProperty(value = "本地IP")
    private String localIp;

    @ApiModelProperty(value = "作为消息通道")
    private Boolean asMessageChannel;

    @ApiModelProperty(value = "SIP事务信息")
    private String sipTransactionInfo;

    @ApiModelProperty(value = "应答后广播推送")
    private Boolean broadcastPushAfterAck;

    @ApiModelProperty(value = "服务器ID")
    private String serverId;
}